#define _CRT_SECURE_NO_WARNINGS
//#include <iostream>
//using namespace std;
//#include<iostream>
//#include<vector>
//#include<string>
//#include<unordered_map>
//#include<algorithm>
//using namespace std;
//int main() {
//    int left = 0, right = 0;
//    cin >> left >> right;
//    int cnt = 0;
//    for (int i = left; i <= right; i++)
//    {
//        int tmp = i;
//        while (tmp > 0)
//        {
//            if (tmp % 10 == 2) cnt++;
//            tmp /= 10;
//        }
//    }
//    cout << cnt << endl;
//}
//class Solution {
//public:
//
//    vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
//        int hash1[1001] = { 0 }, hash2[1001] = { 0 };
//        vector<int> ret;
//        for (auto x : nums1)
//            hash1[x]++;
//        for (auto x : nums2)
//            hash2[x]++;
//        for (int i = 0; i < 1001; i++)
//        {
//            if (hash1[i] > 0 && hash2[i] > 0)
//                ret.push_back(i);
//        }
//        return ret;
//    }
//};

//string Test(string s)
//{
//    string ret;
//    for (int i = 0; i < s.size();)
//    {
//        if (i == s.size() - 1) ret += s[i++];
//        else if (s[i] != s[i + 1]) ret += s[i++];
//        else i += 2;
//    }
//    return ret;
//}
//int main() {
//    string s;
//    int flag = 1;
//    cin >> s;
//    string ret = Test(s);
//    for (int i = 0; i < ret.size() - 1; i++)
//    {
//        if (ret[i] == ret[i + 1]) flag = -1;
//    }
//    while (flag == -1)
//    {
//        ret = Test(ret);
//        flag = 1;
//        for (int i = 0; i < ret.size() - 1; i++)
//        {
//            if (ret[i] == ret[i + 1]) flag = -1;
//        }
//    }
//    cout << ret << endl;
//}
//int main() {
//    string s;
//    int flag = 1;
//    cin >> s;
//    for (int i = 0; i < (int)s.size() - 1;)
//    {
//        if (s[i] == s[i + 1])
//        {
//            s.erase(i, 2);
//            if (i > 0) i--;
//        }
//        else i++;
//    }
//    cout << s << endl;
//}